<!DOCTYPE HTML>
<html lang="zh-CN">
<head><meta name="generator" content="Hexo 3.9.0">
    <!--Setting-->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <meta http-equiv="Cache-Control" content="no-siteapp">
    <meta http-equiv="Cache-Control" content="no-transform">
    <meta name="renderer" content="webkit|ie-comp|ie-stand">
    <meta name="apple-mobile-web-app-capable" content="武威涛哥的博客">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="format-detection" content="telephone=no,email=no,adress=no">
    <meta name="browsermode" content="application">
    <meta name="screen-orientation" content="portrait">
    <meta name="theme-version" content="1.2.3">
    <meta name="root" content="/">
    <link rel="dns-prefetch" href="https://jaredtao.github.io">
    <!--SEO-->

    <meta name="keywords" content="C++,设计模式">


    <meta name="description" content="简介参考书籍 《图解设计模式》，实现各种设计模式
使用C++11实现
代码DesignPattern
Build status


Linux
Windows
Coveralls







...">



<meta name="robots" content="all">
<meta name="google" content="all">
<meta name="googlebot" content="all">
<meta name="verify" content="all">

    <!--Title-->

<title>
    
    C++之设计模式 |
    
    武威涛哥的博客
</title>

    <link rel="alternate" href="/atom.xml" title="武威涛哥的博客" type="application/atom+xml">


    <link rel="icon" href="/favicon.ico">

    



<link rel="stylesheet" href="/css/bootstrap.min.css?rev=3.3.7">
<link rel="stylesheet" href="/css/font-awesome.min.css?rev=4.7.0">
<link rel="stylesheet" href="/css/style.css?rev=@@hash">




    
	<div class="hide">
		<script type="text/javascript">
			var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan class='cnzz_stat_icon_1263868967 hide' %3E%3Cscript%20src%3D%22https%3A%2F%2Fs95.cnzz.com%2Fz_stat.php%3Fweb_id%3D1272564536%22%3E%3C%2Fscript%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s19.cnzz.com/z_stat.php%3Fid%3D1263868967%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));
		</script>
	</div>






    

    <script>
        (function(){
            var bp = document.createElement('script');
            var curProtocol = window.location.protocol.split(':')[0];
            if (curProtocol === 'https') {
                bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
            }
            else {
                bp.src = 'http://push.zhanzhang.baidu.com/push.js';
            }
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(bp, s);
        })();
    </script>

</head>

</html>
<!--[if lte IE 8]>
<style>
    html{ font-size: 1em }
</style>
<![endif]-->
<!--[if lte IE 9]>
<div style="ie">你使用的浏览器版本过低，为了你更好的阅读体验，请更新浏览器的版本或者使用其他现代浏览器，比如Chrome、Firefox、Safari等。</div>
<![endif]-->

<body>
    <header class="main-header"  style="background-image:url(http://snippet.shenliyang.com/img/banner.jpg)"  >
    <div class="main-header-box">
        <a class="header-avatar" href="/" title='JaredTao'>
            <img src="/img/avatar.jpg" alt="logo头像" class="img-responsive center-block">
        </a>
        <div class="branding">
        	<!--<h2 class="text-hide">Snippet主题,从未如此简单有趣</h2>-->
            
                <h2> 传承工匠精神 </h2>
            
    	</div>
    </div>
</header>
    <nav class="main-navigation">
    <div class="container">
        <div class="row">
            <div class="col-sm-12">
                <div class="navbar-header"><span class="nav-toggle-button collapsed pull-right" data-toggle="collapse" data-target="#main-menu" id="mnav">
                    <span class="sr-only"></span>
                        <i class="fa fa-bars"></i>
                    </span>
                    <a class="navbar-brand" href="https://jaredtao.github.io">武威涛哥的博客</a>
                </div>
                <div class="collapse navbar-collapse" id="main-menu">
                    <ul class="menu">
                        
                            <li role="presentation" class="text-center">
                                <a href="/"><i class="fa "></i>首页</a>
                            </li>
                        
                            <li role="presentation" class="text-center">
                                <a href="/categories/Qml组件化编程/"><i class="fa "></i>Qml组件化编程</a>
                            </li>
                        
                            <li role="presentation" class="text-center">
                                <a href="/categories/Qml特效/"><i class="fa "></i>Qml特效</a>
                            </li>
                        
                            <li role="presentation" class="text-center">
                                <a href="/categories/Qt进阶之路/"><i class="fa "></i>Qt进阶之路</a>
                            </li>
                        
                            <li role="presentation" class="text-center">
                                <a href="/categories/C-修炼之路/"><i class="fa "></i>C++修炼之路</a>
                            </li>
                        
                            <li role="presentation" class="text-center">
                                <a href="/categories/武威故事/"><i class="fa "></i>武威故事</a>
                            </li>
                        
                            <li role="presentation" class="text-center">
                                <a href="/archives/"><i class="fa "></i>时间轴</a>
                            </li>
                        
                    </ul>
                </div>
            </div>
        </div>
    </div>
</nav>
    <section class="content-wrap">
        <div class="container">
            <div class="row">
                <main class="col-md-8 main-content m-post">
                    <p id="process"></p>
<article class="post">
    <div class="post-head">
        <h1 id="C++之设计模式">
            
	            C++之设计模式
            
        </h1>
        <div class="post-meta">
    
        <span class="categories-meta fa-wrap">
            <i class="fa fa-folder-open-o"></i>
            <a class="category-link" href="/categories/C-修炼之路/">C++修炼之路</a>
        </span>
    

    
        <span class="fa-wrap">
            <i class="fa fa-tags"></i>
            <span class="tags-meta">
                
                    <a class="tag-link" href="/tags/C/">C++</a> <a class="tag-link" href="/tags/设计模式/">设计模式</a>
                
            </span>
        </span>
    

    
        
        <span class="fa-wrap">
            <i class="fa fa-clock-o"></i>
            <span class="date-meta">2019/04/29</span>
        </span>
        
            <span class="fa-wrap">
                <i class="fa fa-eye"></i>
                <span id="busuanzi_value_page_pv"></span>
            </span>
        
    
</div>
            
            
            <p class="fa fa-exclamation-triangle warning">
                本文于<strong>318</strong>天之前发表，文中内容可能已经过时。
            </p>
        
    </div>
    
    <div id="post-gallery">
        
          <img src="/img/avatar.jpg" alt="gallery-img" class="gallery">
        
    </div>

    <div class="post-body post-content">
        <h2 id="简介"><a href="#简介" class="headerlink" title="简介"></a>简介</h2><p>参考书籍 《图解设计模式》，实现各种设计模式</p>
<p>使用C++11实现</p>
<h2 id="代码"><a href="#代码" class="headerlink" title="代码"></a>代码</h2><p><a href="https://github.com/jaredtao/DesignPattern" target="_blank" rel="noopener">DesignPattern</a></p>
<h2 id="Build-status"><a href="#Build-status" class="headerlink" title="Build status"></a>Build status</h2><table>
<thead>
<tr>
<th align="center"><a href="https://travis-ci.org/jaredtao/DesignPattern" title="Travis build status" target="_blank" rel="noopener">Linux</a></th>
<th align="center"><a href="https://ci.appveyor.com/project/jiawentao/designpattern" title="AppVeyor build status" target="_blank" rel="noopener">Windows</a></th>
<th align="center"><a href="https://coveralls.io/github/wentaojia2014/DesignPattern?branch=master" title="Coveralls coverage" target="_blank" rel="noopener">Coveralls</a></th>
</tr>
</thead>
<tbody><tr>
<td align="center"><img src="https://travis-ci.org/jaredtao/DesignPattern.svg?branch=master" alt="lin-badge" title="Travis build status"></td>
<td align="center"><img src="https://ci.appveyor.com/api/projects/status/cckdwxaagrh2ncvo?svg=true" alt="win-badge" title="AppVeyor build status"></td>
<td align="center"><img src="https://coveralls.io/repos/github/wentaojia2014/DesignPattern/badge.svg?branch=master" alt="cov-badge" title="Coveralls coverage"></td>
</tr>
</tbody></table>
<h2 id="License"><a href="#License" class="headerlink" title="License"></a>License</h2><p><a href="https://github.com/jaredtao/TaoJson/blob/master/LICENSE" target="_blank" rel="noopener"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a></p>
<h2 id="进度"><a href="#进度" class="headerlink" title="进度"></a>进度</h2><table>
<thead>
<tr>
<th align="center">编号</th>
<th align="center">类型</th>
<th align="center">模式</th>
<th align="center">说明</th>
</tr>
</thead>
<tbody><tr>
<td align="center">1</td>
<td align="center">创建型</td>
<td align="center">工厂方法模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Create/FactoryMethod/README.md" target="_blank" rel="noopener">工厂方法模式</a></td>
</tr>
<tr>
<td align="center">2</td>
<td align="center">创建型</td>
<td align="center">抽象工厂模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Create/AbstractFactory/README.md" target="_blank" rel="noopener">抽象工厂模式</a></td>
</tr>
<tr>
<td align="center">3</td>
<td align="center">创建型</td>
<td align="center">构建模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Create/Builder/README.md" target="_blank" rel="noopener">构建模式</a></td>
</tr>
<tr>
<td align="center">4</td>
<td align="center">创建型</td>
<td align="center">单例模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Create/Singleton/README.md" target="_blank" rel="noopener">单例模式</a></td>
</tr>
<tr>
<td align="center">5</td>
<td align="center">创建型</td>
<td align="center">原型模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Create/Prototype/README.md" target="_blank" rel="noopener">原型模式</a></td>
</tr>
<tr>
<td align="center">6</td>
<td align="center">结构型</td>
<td align="center">复合模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Struct/Composite/README.md" target="_blank" rel="noopener">复合模式</a></td>
</tr>
<tr>
<td align="center">7</td>
<td align="center">结构型</td>
<td align="center">适配器模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Struct/Adapter_01/README.md" target="_blank" rel="noopener">类适配器模式</a> <a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Struct/Adapter_02/README.md" target="_blank" rel="noopener">对象适配器模式</a></td>
</tr>
<tr>
<td align="center">8</td>
<td align="center">结构型</td>
<td align="center">装饰模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Struct/Decorator/README.md" target="_blank" rel="noopener">装饰模式</a></td>
</tr>
<tr>
<td align="center">9</td>
<td align="center">结构型</td>
<td align="center">窗口模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Struct/Facade/README.md" target="_blank" rel="noopener">窗口模式</a></td>
</tr>
<tr>
<td align="center">10</td>
<td align="center">结构型</td>
<td align="center">轻量模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Struct/FlyWeight/README.md" target="_blank" rel="noopener">轻量模式</a></td>
</tr>
<tr>
<td align="center">11</td>
<td align="center">结构型</td>
<td align="center">代理模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Struct/Proxy/README.md" target="_blank" rel="noopener">代理模式</a></td>
</tr>
<tr>
<td align="center">12</td>
<td align="center">结构型</td>
<td align="center">桥接模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Struct/Bridge/README.md" target="_blank" rel="noopener">桥接模式</a></td>
</tr>
<tr>
<td align="center">13</td>
<td align="center">行为型</td>
<td align="center">迭代器模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/Iterator/README.md" target="_blank" rel="noopener">迭代器模式</a></td>
</tr>
<tr>
<td align="center">14</td>
<td align="center">行为型</td>
<td align="center">模板方法模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/TemplateMethod/README.md" target="_blank" rel="noopener">模板方法模式</a></td>
</tr>
<tr>
<td align="center">15</td>
<td align="center">行为型</td>
<td align="center">策略模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/Strategy/README.md" target="_blank" rel="noopener">策略模式</a></td>
</tr>
<tr>
<td align="center">16</td>
<td align="center">行为型</td>
<td align="center">访问者模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/Visitor/README.md" target="_blank" rel="noopener">访问者模式</a></td>
</tr>
<tr>
<td align="center">17</td>
<td align="center">行为型</td>
<td align="center">责任链模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/ResponsibilityChain/README.md" target="_blank" rel="noopener">责任链模式</a></td>
</tr>
<tr>
<td align="center">18</td>
<td align="center">行为型</td>
<td align="center">仲裁者模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/Mediator/README.md" target="_blank" rel="noopener">仲裁者模式</a></td>
</tr>
<tr>
<td align="center">19</td>
<td align="center">行为型</td>
<td align="center">观察者模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/Observer/README.md" target="_blank" rel="noopener">观察者模式</a></td>
</tr>
<tr>
<td align="center">20</td>
<td align="center">行为型</td>
<td align="center">备忘录模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/Memento/README.md" target="_blank" rel="noopener">备忘录模式</a></td>
</tr>
<tr>
<td align="center">21</td>
<td align="center">行为型</td>
<td align="center">状态模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/State/README.md" target="_blank" rel="noopener">状态模式</a></td>
</tr>
<tr>
<td align="center">22</td>
<td align="center">行为型</td>
<td align="center">命令模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/Command/README.md" target="_blank" rel="noopener">命令模式</a></td>
</tr>
<tr>
<td align="center">23</td>
<td align="center">行为型</td>
<td align="center">解释器模式</td>
<td align="center"><a href="https://github.com/jaredtao/DesignPattern/blob/master/code/Behavior/Interpreter/README.md" target="_blank" rel="noopener">解释器模式</a></td>
</tr>
</tbody></table>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><h3 id="创建型模式"><a href="#创建型模式" class="headerlink" title="创建型模式"></a>创建型模式</h3><p>创建型模式对类的实例化过程进行抽象，将软件中对象的创建和使用分离。<br>为了使软件的结构更加清晰，外界对于这些对象只需要知道共同的接口，而不清楚其内部实现细节，使整个系统的设计更加符合单一职责原则。</p>
<p>创建型模式在创建什么（what） 、由谁创建（who）、何时创建（when）等方面都为软件设计者提供了尽可能大的灵活性，隐藏了类的实例创建细节，通过隐藏对象<br>如何被创建和组合在一起，达到整个系统独立的目的</p>
<h3 id="结构型模式"><a href="#结构型模式" class="headerlink" title="结构型模式"></a>结构型模式</h3><p>描述如何将类和对象结合在一起形成更大的结构，就像搭积木，通过简单积木的组合形成结构复杂、功能强大的结构<br>分为 类结构型模式 和 对象结构型模式：</p>
<ul>
<li><p>类结构型模式 </p>
<p>关心类的组合，由多个类可以组合成一个更大的<br>系统，在类结构型模式中一般只存在继承关系和实现关系</p>
</li>
<li><p>对象结构型模式</p>
<p>关心类与对象的组合，通过关联关系使得在一 个类中定义另一个类的实例对象，然后通过该对象调用其方法。 根据“合成复用原则”，在系统中尽量使用关联关系来替代继 承关系，因此大部分结构型模式都是对象结构型模式。</p>
<h3 id="行为型模式"><a href="#行为型模式" class="headerlink" title="行为型模式"></a>行为型模式</h3><p>对不同的对象之间划分责任和算法的抽象。<br>行为型模式不仅仅关注类和对象的结构，而且重点关注它们之间的相互作用。<br>通过行为型模式，可以更加清晰地划分类与对象的职责，并研究系统在运行时实例对象 之间的交互。在系统运行时，对象并不是孤立的，它们可以通过相互通信与协作完成某些复杂功能，一个对象在运行时也将影响到其他对象的运行。</p>
</li>
</ul>
<p>行为型模式分为类行为型模式和对象行为型模式两种：</p>
<ul>
<li><p>类行为型模式</p>
<p>  类的行为型模式使用继承关系在几个类之间分配行为，类行为型模式主要通过多态等方式来分配父类与子类的职责。</p>
</li>
<li><p>对象行为型模式</p>
<p>  对象的行为型模式则使用对象的聚合关联关系来分配行为，对象行为型模式主要是通过对象关联等方式来分配两个或多个类的职责。根据“合成复用原则”，系统中要尽量使用关联关系来取代继承关系，因此大部分行为型设计模式都属于对象行为型设计模式。</p>
</li>
</ul>

    </div>
    
        <div class="reward" ontouchstart>
    <div class="reward-wrap">赏
        <div class="reward-box">
            
                <span class="reward-type">
                    <img class="alipay" src="/img/zhifubao.jpg"><b>支付宝打赏</b>
                </span>
            
            
                <span class="reward-type">
                    <img class="wechat" src="/img/weixin.jpg"><b>微信打赏</b>
                </span>
            
        </div>
    </div>
    <p class="reward-tip">赞赏是不耍流氓的鼓励</p>
</div>


    
    <div class="post-footer">
        <div>
            
                转载声明：文章采用<a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可, 转载请注明出处 © <a href="https://jaredtao.github.io" target="_blank">武威的涛哥</a>
            
        </div>
        <div>
            
        </div>
    </div>
</article>

<div class="article-nav prev-next-wrap clearfix">
    
        <a href="/2019/04/29/Qt输出彩色log/" class="pre-post btn btn-default" title='Qt输出彩色log信息'>
            <i class="fa fa-angle-left fa-fw"></i><span class="hidden-lg">上一篇</span>
            <span class="hidden-xs">Qt输出彩色log信息</span>
        </a>
    
    
        <a href="/2019/04/29/涛哥博客杂谈/" class="next-post btn btn-default" title='涛哥博客杂谈'>
            <span class="hidden-lg">下一篇</span>
            <span class="hidden-xs">涛哥博客杂谈</span><i class="fa fa-angle-right fa-fw"></i>
        </a>
    
</div>


    <div id="comments">
        
	
    <div id="vcomments" class="valine"></div>
    <script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
<script src="/assets/valine.min.js"></script>

    <script>
        new Valine({
            av: AV,
            el: '#vcomments',
            appId: 'qegD4552u6FU9HoNDvRsonko-gzGzoHsz',
            appKey: 'eitB2FV5n2qyMHcDM7x6EQpt',
            placeholder: '说点什么吧',
            notify: false,
            verify: false,
            avatar: 'mm',
            meta: 'nick,mail'.split(','),
            pageSize: '10',
            path: window.location.pathname,
            lang: 'zh-CN'.toLowerCase()
        })
    </script>


    </div>





                </main>
                
                    <aside id="article-toc" role="navigation" class="col-md-4">
    <div class="widget">
        <h3 class="title">文章目录</h3>
        
            <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#简介"><span class="toc-text">简介</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#代码"><span class="toc-text">代码</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Build-status"><span class="toc-text">Build status</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#License"><span class="toc-text">License</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#进度"><span class="toc-text">进度</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#总结"><span class="toc-text">总结</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#创建型模式"><span class="toc-text">创建型模式</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#结构型模式"><span class="toc-text">结构型模式</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#行为型模式"><span class="toc-text">行为型模式</span></a></li></ol></li></ol>
        
    </div>
</aside>

                
            </div>
        </div>
    </section>
    <footer class="main-footer">
    <div class="container">
        <div class="row">
        </div>
    </div>
</footer>

<a id="back-to-top" class="icon-btn hide">
	<i class="fa fa-chevron-up"></i>
</a>




    <div class="copyright">
    <div class="container">
        <div class="row">
            <div class="col-sm-12">
                <div class="busuanzi">
    
        访问量:
        <strong id="busuanzi_value_site_pv">
            <i class="fa fa-spinner fa-spin"></i>
        </strong>
        &nbsp; | &nbsp;
        访客数:
        <strong id="busuanzi_value_site_uv">
            <i class="fa fa-spinner fa-spin"></i>
        </strong>
    
</div>

            </div>
            <div class="col-sm-12">
                <span>Copyright &copy;
                    2019
                    
                </span> |
                <span>
                    Powered by <a href="//hexo.io" class="copyright-links" target="_blank" rel="nofollow">Hexo</a>
                </span> |
                <span>
                    Theme by <a href="//github.com/shenliyang/hexo-theme-snippet.git" class="copyright-links" target="_blank" rel="nofollow">Snippet</a>
                </span>
            </div>
        </div>
    </div>
</div>




    <script src="/assets/tagcanvas.min.js?rev=2.9"></script>
    <script>
        var tagOption = {
            textColour: '#444', // 字体颜色
            outlineMethod: 'block', // 选中模式
            outlineColour: '#FFDAB9', // 选中模式的颜色
            interval: 30 || 30, // 动画帧之间的时间间隔，值越大，转动幅度越大
            textHeight: 13,
            outlineRadius: 3,
            freezeActive: true || '', // 选中的标签是否继续滚动
            frontSelect: true || '', // 不选标签云后部的标签
            initial: [0.1, -0.1],
            depth: 0.5,
            decel: 0.95,
            maxSpeed: 0.03,
            reverse: true || '', // 是否反向触发
            fadeIn: 500, // 进入动画时间
            wheelZoom: false || '' // 是否启用鼠标滚轮
        }
        TagCanvas.Start('tag-cloud-3d','',tagOption);
    </script>



    <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>


<script src="/js/app.js?rev=@@hash"></script>

</body>
</html>